📦 III. 알고리즘과 프로그래밍 > 03 순차적 데이터 저장

변수와 리스트

값을 담아 두는 마법 상자 변수, 여러 값을 순서대로 줄 세우는 리스트!
프로그램이 데이터를 기억하는 방법을 직접 만지며 배워 봅시다. 📦

변수
값 바꾸기
리스트

학습 목표

[9정03-03] 자료를 변수와 리스트로 저장하고 활용한다

  • 변수가 무엇인지 설명하고, 변수에 값을 저장·변경할 수 있다.
  • 임시 변수를 이용해 두 변수의 값을 맞바꾸는 과정을 추적할 수 있다.
  • 리스트로 여러 데이터를 순서대로 저장하고, 추가·삭제·접근할 수 있다.

생각 열기 🤔

학교 사물함을 떠올려 봐요. 사물함마다 번호(이름표)가 붙어 있고, 그 안에는 내 물건이 들어 있죠. 물건을 꺼내고 다른 걸 넣으면, 같은 사물함이지만 속 내용은 바뀌어요.

프로그램에서 데이터를 담아 두는 변수가 바로 이 사물함과 똑같아요! 🗄️ 이름표(변수 이름)가 붙은 상자에 값을 넣어 두고, 필요할 때 꺼내 쓰는 거예요.

💡 그리고 사물함이 여러 칸 줄지어 있는 게 바로 리스트랍니다.

1. 변수(Variable)란?

값을 담아 두는, 이름표 붙은 상자

변수는 값을 담아 두는 이름이 있는 저장 공간이에요. "변할 수 있는 수"라는 뜻처럼, 같은 변수라도 담긴 값은 바뀔 수 있어요.

번호가 붙은 우체국 사서함들

📮 변수는 '이름표 붙은 상자'예요

우체국 사서함을 보세요. 칸마다 번호(이름)가 붙어 있고 그 안에 편지(값)를 넣어 둬요. 변수도 똑같아요 — 점수라는 이름의 칸에 100을 넣어 두는 거죠. 편지가 바뀌듯 값도 바뀔 수 있어요.

© Joe Mabel · CC BY-SA 3.0 · Wikimedia Commons

🏷️ 변수의 두 가지 부분

100

↑ 값 (상자 속 내용)

점수

↑ 이름 (이름표)

점수 = 100 → "점수라는 상자에 100을 넣어라"

🎮 변수는 어디에 쓰일까?

  • 게임의 점수·생명 수·레벨을 기억해 둬요.
  • 타이머의 남은 시간을 1초씩 줄여 가며 저장해요.
  • 쇼핑 앱의 장바구니 합계 금액을 담아 둬요.
💡 변수가 없다면? 컴퓨터는 방금 계산한 값도 곧바로 잊어버려요! 변수는 컴퓨터의 메모(기억)예요.

2. 값을 저장하고 바꾸기

대입(=)은 "넣어라"라는 명령

점수 = 100 에서 = 는 "같다"가 아니라 "오른쪽 값을 왼쪽 상자에 넣어라"라는 대입 명령이에요. 새 값을 넣으면 이전 값은 지워지고 덮어써져요!

🧩 스크래치에서는 이렇게 생겼어요

점수 ▾ 을(를) 100 로 정하기 ↑ 변수에 값을 딱 정해서 넣기 (대입) 점수 ▾ 을(를) 1 만큼 바꾸기 ↑ 지금 값에 1을 더하기 (점수 ← 점수 + 1)

📦 인터랙티브 · 변수 상자에 값 넣어 보기

점수 상자에 값을 넣고, 바꿔 보세요. 새 값을 넣으면 이전 값이 어떻게 덮어써지는지 보여줘요!

점수
0

📜 실행 기록

버튼을 누르면 변수에 일어난 일이 여기에 기록돼요.

💡 변수는 한 번에 값 하나만 담을 수 있어요. 새 값을 넣으면 이전 값은 사라지고 다시 꺼낼 수 없어요!

3. 두 변수의 값 맞바꾸기

임시 변수가 꼭 필요한 까닭

A에는 5, B에는 3이 들어 있어요. 두 값을 맞바꾸고 싶어요 (A=3, B=5로!). 그런데 그냥 A = B 부터 하면? A의 원래 값 5가 덮어써져 사라져요! 그래서 잠깐 보관할 임시 변수가 필요해요.

🔁 인터랙티브 · 값 바꾸기 한 단계씩 따라가기

다음 단계를 누르며 세 상자(A · B · 임시)의 값이 어떻게 움직이는지 지켜보세요!

5

A

3

B

비어
있음

임시

시작: A에는 5, B에는 3이 들어 있어요. "다음 단계"를 눌러 값을 맞바꿔 봅시다!
단계 0 / 3

💻 의사코드로 보면

# A=5, B=3 을 맞바꾸기
임시 = A   # 임시=5 (A를 잠깐 보관)
A = B   # A=3
B = 임시  # B=5 → 교환 완성!

4. 리스트(List)란?

여러 값을 순서대로 줄 세우는 상자

변수는 값 하나만 담을 수 있어요. 그런데 반 친구 30명의 점수처럼 값이 많다면? 변수 30개를 만들 순 없죠. 이럴 때 리스트를 써요. 리스트는 여러 칸이 줄지어 있는 사물함이에요. 각 칸에는 순서(번호)가 있어요!

🍎 예: "좋아하는 과일" 리스트

🍎

1번

🍌

2번

🍇

3번

"2번 값을 꺼내 줘"라고 하면 🍌가 나와요. 순서 번호로 콕 집어 꺼낼 수 있죠!
※ 스크래치 리스트는 1번부터 셉니다. (파이썬 등은 0번부터)

변수

값 하나를 담아요. (상자 1개)

리스트

값 여러 개를 순서대로 담아요. (상자 여러 칸)

5. 리스트 다루기

추가하고, 빼고, 꺼내 보기

추가

리스트 끝(또는 원하는 자리)에 값을 새로 넣어요.

삭제

특정 칸의 값을 빼면 뒤 칸들이 한 칸씩 당겨져요.

접근

"몇 번째 값?"처럼 순서로 콕 집어 꺼내요.

🧪 인터랙티브 · 리스트 직접 다뤄 보기

값을 추가·삭제하고, 번호로 꺼내 보세요. 리스트가 실시간으로 바뀌어요! (스크래치처럼 1번부터 세요)

빠른 추가:
|
💡 리스트는 칸 수가 자유롭게 늘었다 줄었다 해요. 값을 추가하면 번호도 자동으로 매겨져요!

참고 — 변수에 담는 값에도 '종류'가 있어요 (성취기준 밖 심화)

🔢

정수

int · 3, -7, 100

📏

실수

float · 3.14

🔤

문자(열)

string · "안녕"

✅

논리

boolean · 참/거짓

🧠 변수 = 메모리의 이름표 붙은 칸

컴퓨터는 메모리(기억 공간)의 한 칸에 값을 넣고, 변수 이름으로 그 칸을 찾아가요.

0️⃣ 리스트 번호는 0부터!

많은 프로그래밍 언어에서 리스트의 첫 칸은 1번이 아니라 0번이에요. (파이썬·자바스크립트 등)

핵심 정리

변수

값을 담아 두는 이름이 있는 상자. 담긴 값은 언제든 바뀔 수 있어요.

대입(=)

"오른쪽 값을 왼쪽 상자에 넣어라." 새 값을 넣으면 이전 값은 덮어써져요.

값 맞바꾸기

두 변수의 값을 바꾸려면 임시 변수에 잠깐 보관해야 값을 잃지 않아요.

리스트

여러 값을 순서대로 담는 상자. 번호로 값을 꺼내고, 추가·삭제할 수 있어요.

스스로 점검하기

5문제로 오늘 배운 내용을 확인해요

1

변수를 가장 잘 설명한 것은?

2

점수 = 100 다음에 점수 = 50 을 실행하면 점수의 값은?

3

두 변수 A, B의 값을 맞바꿀 때 꼭 필요한 것은?

4

변수와 리스트의 차이로 옳은 것은?

5

리스트 [🍎, 🍌, 🍇] 에서 스크래치 기준 2번 항목은?